package com.love.driver.service;

import java.util.List;
import com.love.driver.domain.LoveDriverOrder;
import com.love.driver.vo.DriverVo;

/**
 * 代驾订单主Service接口
 * 
 * @author love
 * @date 2025-09-13
 */
public interface ILoveDriverOrderService 
{
    /**
     * 查询代驾订单主
     * 
     * @param orderId 代驾订单主主键
     * @return 代驾订单主
     */
    public LoveDriverOrder selectLoveDriverOrderByOrderId(Long orderId);

    /**
     * 用户查询代驾订单主列表
     *
     * @param loveDriverOrder 代驾订单主
     * @return 代驾订单主集合
     */
    public List<LoveDriverOrder> selectLoveDriverOrderList(LoveDriverOrder loveDriverOrder);

    /**
     * 用户查询代驾订单主列表
     * 
     * @param loveDriverOrder 代驾订单主
     * @return 代驾订单主集合
     */
    public List<LoveDriverOrder> selectUsersLoveDriverOrderList(LoveDriverOrder loveDriverOrder);

    /**
     * 司机查询代驾订单主列表
     *
     * @param vo 代驾订单主
     * @return 代驾订单主集合
     */
    public List<DriverVo> selectDriversLoveDriverOrderList(String driverCode);

    /**
     * 新增代驾订单主
     * 
     * @param loveDriverOrder 代驾订单主
     * @return 结果
     */
    public int insertLoveDriverOrder(LoveDriverOrder loveDriverOrder);

    /**
     * 修改代驾订单主
     * 
     * @param loveDriverOrder 代驾订单主
     * @return 结果
     */
    public int updateLoveDriverOrder(LoveDriverOrder loveDriverOrder);

    /**
     * 修改代驾订单状态
     *
     * @param orderId 代驾订单
     * @return 结果
     */
    public int updateOrderStatus(Long orderId);

    /**
     * 批量删除代驾订单主
     * 
     * @param orderIds 需要删除的代驾订单主主键集合
     * @return 结果
     */
    public int deleteLoveDriverOrderByOrderIds(Integer[] orderIds);

    /**
     * 删除代驾订单主信息
     * 
     * @param orderId 代驾订单主主键
     * @return 结果
     */
    public int deleteLoveDriverOrderByOrderId(Long orderId);

}
